The present invention relates generally to Data Center (DC) network system and, more particularly, to a method and an apparatus to distribute network traffic to multiple paths in a network fabric.
In recent years, in data centers of cloud services, the use of network fabrics is increasing to deal with increasing horizontal traffics among servers and storages in the data centers. The demand for rapid change of configuration and capacity is also driving the use of the network fabrics.
The network fabric has typically multiple paths between two nodes in a fabric to provide a load balancing feature and to improve fault tolerance of the network. A node in that has multiple outgoing ports distribute automatically incoming network traffics according to a rule. For example, in a fabric with symmetric topology, when an edge of the fabric receives an IP packet, it makes hash values from the set of the source IP address and the destination IP address of the received packet. The hash values have the same hash length with the number of the multiple paths in the fabric. Mapping the hash values with the multiple paths, the edge node transfers the packet via the corresponding path to the made hash value. In general, the number of the set of the addresses is larger than the number of the multiple paths. Therefore, the network traffics are distributed well randomly to the multiple paths.
However, a failure in a network fabric affects strongly network traffics that are randomly distributed to multiple paths in the fabric. In more detail, the failure affects multiple tenants using the fabric. As an example, we suppose the case of a Web system composed of a Web server, an application server, and an iSCSI target connected sequentially by the fabric. The Web system contains two network links. These two links could be distributed to the multiple paths of the fabric. When two Web systems are connected to and overwrapped on the fabric, one link failure can affect both of the two Web systems even if two links of a system are distributed to the multiple links. For example, as shown in FIG. 1, a link between a Web server and an application server of a Web system and a link between an application server and an iSCSI target of the other Web system can be assigned to the same physical link. Because each of the Web systems is affected even by a single-link failure, both of two tenants of the Web systems suffer a system failure and reduced system availability as shown in FIG. 2. As the complexity of tenant systems increases, the number of tenants affected by a link failure increases.
U.S. Pat. No. 7,903,654 B2 provides a packet classifier and a method for routing a data packet. It discloses load sharing with the routes under Equal Cost Multi Paths (ECMPs) and, more specifically, a method of hardware support for ECMP by an indirect coupling between Content Addressable Memory (CAM) and Parameter Random Access Memory (PRAM). It does not address the issues regarding system level availability of the present invention.